<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

    <script>

        // 函数 是一种数据类型

        // 函数的声明方式

        //   1 具名函数
        //   2 赋值式函数

        //   3 匿名函数

        //  把一个函数赋值给一个变量
        // var sum = function (a, b) {
        //     return a + b;
        // }
        //   变量名就相当于函数名
        // document.write(sum(1, 2));


        // 调用函数，都是通过函数名字调用 ， 没有名字的函数是没办法调用   错误的
        // function (a, b) {
        //     return a + b
        // }


        // 匿名函数的自调用    ----   一次性的函数
        //    封装性

        (function (a, b) {
            console.log(a + b);
        })(1, 2)

        !function (a, b) {
            console.log(a + b);
        }(2, 3)

        ~function (a, b) {
            console.log(a + b);
        }(3, 3)

        %function (a, b) {
            console.log(a + b);
        }(4, 3)

        // 后面永远无法调用

    </script>

</body>

</html>